package demo1228.pm;
/*
实现线程的第二种方式
实现Runnable接口
Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。
类必须定义一个称为 run 的无参数方法。
查看API文档发现接口中只有一个无参的run方法
void run();   设置线程任务
实现的步骤:
1.定义一个类,实现Runnable接口,重写run方法,设置线程任务.
2.创建一个Thread类对象,把Runnable接口的实现类对象作为参数传递.
3.调用Thread类对象的start方法开启线程.

Thread类中的构造方法:
1.Thread(Runnable target) ;
2.public Thread(Runnable target,String name)
参数：
target - 其 run 方法被调用的对象。
name - 新线程的名称。

成员方法:
1.public static void sleep(long millis) throws InterruptedException
在指定的毫秒数内让当前正在执行的线程休眠（暂停执行），
此操作受到系统计时器和调度程序精度和准确性的影响

 */
public class Demo_01 {
    public static void main(String[] args) {

//创建Runnable接口的实现类的对象
//        Runnable r = new RunImpl();
        Runnable r = new Runnable() {
            @Override
            public void run() {
                //        设置线程任务
                for (int i = 0; i < 1000; i++) {
                    System.out.println(Thread.currentThread().getName()+"--"+i);
                }
            }
        };
//    创建Thread对象
        Thread th = new Thread(r,"娃哈哈线程");
//        开启线程
        th.start();
        for (int i = 0; i < 1000; i++) {
            if (i==100){
                try {
                    //
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println(Thread.currentThread().getName()+"--"+i);
        }
    }
}
